Deep and Structured - L2 Notes(上)

Contents

  1. 1. Neural Network (Basic Ideas)
    1. 1.1. 提要
    2. 1.2. What is model
      1. 1.2.1. A Layer of Neuron
      2. 1.2.2. Neural Network
      3. 1.2.3. Neural Network as Model
      4. 1.2.4. Notation
      5. 1.2.5. Relation between Layer Outputs
    3. 1.3. What is Best Function
      1. 1.3.1. Best Parameter
      2. 1.3.2. Cost Function

Neural Network (Basic Ideas)

提要

回顧一下 framework :

2-3

這次要探討的有:

  1. 什麼是 model ?
  2. 什麼是 “best” function ?
  3. 如何挑選 “best” function ?

而首先要考慮的是今天要學習做到的是什麼,這邊給了 Classification 中的兩種:

  • Binary Classification
  • Multi-class Classification

之前有提過的 筆記

What is model

A Layer of Neuron

要如何來建 input 是 n dimension ,output 是 m dimension 的 model 呢?
我們只要用一層 Layer 的 Neuron 就可做到了。

首先一個 Neuron 的運作在上一章有大致講過,其 input 是 n 維的 vector ,output 是個 scalar 。另外對於 bias 的描述方式還有另一種,把 input 多一個 dimension 為 1 ,而其 weight 就是 bias 的值。


2-13
2-14

而顯然的目前這樣只能回答 binary classification 的問題,如下圖:

2-15

但假如今天是要辨識 10 個數字,10 個 class (1,2,3,4,5,6,7,8,9,0),就要增加 neurons 到 10 個,最後就會有 10 個純量,也就是 m 維的 vector。每一維對應到一個 class 。最後要決定是哪個數字,就只需要看哪一個 neuron 出來的值($y_1,y_2,\ldots,y_m$)最大即可。

2-16

但很快發現了一些問題是無法解決的,例如 XOR ,不管怎麼調整各項數值都無法做到,有點像是從座標中找一條線將這四個點分成我們要的兩類。

2-18

Neural Network

那解決方法就是利用 兩個 Layer 來解決,這裡以 XNOR 來看,右上角是其邏輯電路圖。
先用兩個 neuron 來模擬圖中兩個 AND gate ,再將它們的 output 丟到另一個 neuron 模擬 OR gate。

把一個 neuron 的 output 當作另一個 neuron 的 input ,這樣子其實就是一個 Neural Network 了。
中間那些 output 被當成 input 的 neurons 又稱為 Hidden Neurons

2-21

大概的過程:

2-22

可以看到最後有辦法畫出一條線將它們區隔開來。至於如何找出 $a_1,a_2$ 的值,就是以後的故事了。

2-23

Neural Network as Model

從 input 到第一層 layer ,第一層 layer 的 output 再傳到第二層,這樣一直下去直到最後一層。如同前面所提,如果你希望最後是個 m 為的 vector ,那最後一層就要有 m 個 neuron 。
我們這邊稱 input 的 vector 為 input layer

而實際上 neuron 這邊的這些連結是不一定這樣一層一層往下連的,但這邊我們考慮的就只有第一層連第二層 … 這樣一直下去。

2-25

Feedforward: 它傳遞訊息的方式從 input 到 output 是單向的 (維基百科)。

Fully connected: 兩 layer 間的 neurons 兩兩相連,也就是上一層的每一個 neuron 會接到下一層的每一個 neuron 。

Deep Neural Network : 有很多層的 hidden layers。

Notation

我這邊用大寫 L 來表示第幾層 Layer 。可以往上拉在看一下 Single Neuron 的圖 #

$a^L_i$ : 第 L 層 的第 i 個 neuron 的 output

$a^L$ : 第 L 層每一個 neuron 的 output => vector

2-26

這邊要特別注意上下標所代表的意思。

$w^L_{ij}$ : “第 L-1 層中的第 j 個 neuron “ 到 “第 L 層中的第 i 個 neuron “ 之間的 weight。

$W^L$ : “第 L-1 層” 到 “第 L 層” neuron 的所有 weight => matrix ,且其 row 的數量為 $N_L$ ,column 的數量為 $N_{L-1}$。 ($N_L$: 第 L 層中 neuron 的數量)。

2-27

$b^L_i$ : 第 L 層第 i 個 neuron 的 bias。

$b^L$ : 第 L 層中全部 neuron 的 bias => vector

2-28

$z^L_i$ : 第 L 層第 i 個 neuron 中 activation function 的 input

$z^L$ : 第 L 層中全部 neuron 的 activation function 的 input => vector

特別注意下圖中 $z^L_i$ 的算法。

2-29

統整:

2-30

Relation between Layer Outputs

從下面這張圖就可以清楚知道為何 $w^L_{ij}$ 的下標方向要顛倒,否則在做 $W^La^{L-1}$矩陣乘法時,$W$ 就要做 transpose 了。

2-32

再來只要將 $z^L_i$ 通過 Activation function 就能得到 output。我們可以將 Activation function 直接定義在 $z^L$ vector 上。

2-33

2-34

將整個 network 寫成 Function:

2-35

2-36

第 2 個 $b^1$ 應該改成 $b^2$ 才對。

What is Best Function

Best Parameter

嚴格來說,我們上面提到的 $f(x) $ ,它並不只是一個 function ,它應該是一個 function set ,只要裡面的參數不同($W,b$),就是不同的 function 。
表示法如下圖:
$f(x;\theta)$
($\theta$ 是 parameter)
(第 2 個 $b^1$ 應該改成 $b^2$ 才對)

2-38

所以對於找一個最好的 function ,其實也就是找一組最好的 參數

Cost Function

用來評估一組 parameter $\theta$ 它有多 糟糕 。通常表示成 $C(\theta)$ ,稱為 Cost function
所以我們想找的 Best ,就是一組代進 Cost Function 後出來的值為 最小 的 parameter。

如果今天評估的是 parameter 有多
我們通常會用 $O(\theta)$ 來表示,稱為 Objective Function

2-39

特別注意 $\hat{y}^r$ 它是指第 r 筆資料的 正確答案,且同樣是用 vector 存。與我們的 $f$ 得出的結果(vector)相減後,取 norm(範數) 長度。
目的就是希望找一組 $\theta$ 能 最小化 這 vector 間的距離。

2-40